package gdr.dev;

import java.util.*;

/**
 * Dato un insieme di elementi eseguibili, restituisce l'elemento attivo. Utilizzando questa classe
 * si possono quindi costruire programmi sequenzializzabili.
 * @author Giorgio Vitale
 *
 * @param <T>
 */
public class Executer<T> {

	protected HashMap<Integer, T> el;
	/** elemento attivo*/
	protected int activeElement;
	/** finita l'esecuzione */
	protected boolean isFinished;
	
	public Executer(){
		el = new HashMap<Integer,T>();
		isFinished = false;
	}
	
	public void addElement(int codice, T element){
		el.put(codice, element);
	}
	
	public T getActiveElement(){
		return el.get(activeElement);
	}
	
	public void setActiveElement(int activeElement){
		this.activeElement = activeElement;
	}

	public boolean isFinished() {
		return isFinished;
	}
	
}
